Computing devices are sufficiently pervasive in everyday social and business circles that even people who meet face-to-face often also want to use their computing devices together in various ways to exchange data and/or share resources. However, such computing devices are often designed in both their hardware and software with an intrinsic assumption that they will be employed only by one person, and that they will be employed either in a standalone manner or in a manner making use of network services provided by a distant server or bank of servers and only in a standalone manner. As a result, mechanisms for exchanging data and sharing resources among computing devices in more local proximity to each other, even computing devices that are owned and used by the same person, are often cumbersome.
By way of example, an electronic data file may be stored in one computing device, and there may be a need to share that data file with another computing device in local proximity. Currently, regardless of whether those two computing devices are associated with a common organization or even the same person, sharing the data file between them either entails the use of some form of storage media to physically carry the data file from one computing device to the other, or the use of services provided by a distantly located server or bank of servers. Where the services of a distant server or bank of servers is employed, both of the computing devices must contact the server or bank of servers through the Internet (or other long-range network), must each be authenticated as accepted computing devices by that server or bank of servers, and then employ file transfer, email or other service provided by that server or bank of servers to indirectly transfer the data file between the two computing devices. Unfortunately, the use of a storage media may be thwarted by the storage media not being available when needed and/or by the storage media not being operable with one or both of the computing devices. Similarly, the use of one or more distantly located servers may be thwarted by a lack of available access to the Internet or other long-range network by which the distantly located server or servers may be reached. Further, even if nothing prevents both computing devices from reaching the one or more distantly located servers, such use of such long-range electronic communications to transfer a data file between two computing devices that are in relatively close proximity to each other is not efficient and may not be cost effective.
It is with respect to these and other considerations that the techniques described herein to form and maintain a local ad hoc network are needed.